package CapaLogica;


import CapaAccesoBD.Conector;
import java.util.ArrayList;

public class MultiEscuela{
    /**
    * Inserta un registro de la escuela en la base de datos
    *
    * @param  pnombre  identificador del artista
    * @param  ppais nombre del artista
    * @param  fec_ina nombre del artista
    * @param  pdescrip nombre del artista
    * @return   el objeto Escuela
    */
	public  Escuela crear(String pnombre,String ppais,String fec_ina,String pdescrip) 
		throws Exception{
            
		Escuela pescuela=null;
		String sql;
		sql = "INSERT INTO TEscuela "+
		"VALUES ('"+pnombre+"', '"+ppais+"', '"+fec_ina+"', '"+pdescrip+"');";
		try {
			Conector.getConector().ejecutarSQL(sql);
			pescuela = new Escuela (pnombre, ppais,fec_ina,pdescrip);
		}
		catch (Exception e) {
			throw new Exception ("Ocurrio un error a la hora de registrar.");
		}
		return pescuela;
	}
    /**
    *Actualiza los datos de un escuela
    *
    * @param  pescuela  objeto escuela
    */
	public  void actualizar(Escuela pescuela) throws 
			java.sql.SQLException,Exception{
		String sql;
		sql = "UPDATE TEscuela "+
		"SET pais='"+pescuela.getPais()+"' "+
                ",fechaInaguracion='"+pescuela.getFechaInaguracion()+"' "+
                ",descripcionCarac='"+pescuela.getDescripcionCarac()+"' "+  
		"WHERE nombre='"+pescuela.getNombre()+"';";
		try {
			Conector.getConector().ejecutarSQL(sql);
		}
		catch (Exception e) {
			throw new Exception ("La escuela no ha sido registrada");
		}
	}
    /**
    *Borra el registro de una escuela
    *
    * @param  pescuela  objeto escuela
    */
	public  void borrar(Escuela pescuela) throws 
			java.sql.SQLException,Exception{
		String sql;
		sql = "DELETE FROM TEscuela "+
		"WHERE nombre='"+pescuela.getNombre()+"';";
		try {
			Conector.getConector().ejecutarSQL(sql);
		}
		catch (Exception e) {
			throw new Exception ("Ocurrio un error al eliminar la escuela.");
		}
	}
    /**
    *Busca las coincidencias de las escuelas con un
    * nombre determinado
    *
    * @param  pnomEscuela  nombre de la una escuela
    */  
        public Escuela buscarPorNombre(String pnomEscuela) throws Exception{
            Escuela objEscuela=null;
            String sql;
            java.sql.ResultSet rs;
            sql = "SELECT nombre, pais, fechaInaguracion, descripcionCarac " + 
                  "FROM TEscuela " + 
                  "WHERE nombre = '"+pnomEscuela+"';";
            try{

                rs = Conector.getConector().ejecutarSQL(sql,true);
                if(rs.next()){
                    objEscuela = new Escuela (rs.getString("nombre"), rs.getString("pais"), rs.getString("fechaInaguracion"), rs.getString("descripcionCarac"));
                }
            }catch (Exception e){ 
                throw new Exception (e);
            }
            rs.close();
            
            return objEscuela;
        }        
    /**
    *Busca las coincidencias de las escuelas con un
    * nombre determinado
    *
    * @param  pnomEscuela  nombre de la una escuela
    * @return   ArrayList<Escuela>
    */ 
        public ArrayList<Escuela> buscarEscuelasPorNombre(String pnomEscuela) throws Exception{
            Escuela objEscuela;
            ArrayList<Escuela> listaEscuelas;
            String sql;
            java.sql.ResultSet rs;
            sql = "SELECT nombre, pais, fechaInaguracion, descripcionCarac " + 
                  "FROM TEscuela " + 
                  "WHERE nombre like '%"+pnomEscuela+"%';";
            try{
                rs = Conector.getConector().ejecutarSQL(sql,true);
                listaEscuelas = new ArrayList<>();
                if (rs.next()) {
                    do{
                        objEscuela = new Escuela (rs.getString("nombre"), rs.getString("pais"), rs.getString("fechaInaguracion"), rs.getString("descripcionCarac"));
                        listaEscuelas.add(objEscuela);
                    }while (rs.next());
                }
            }catch (Exception e){
                throw new Exception ("No hay Escuelas con ese nombre");
            }
            rs.close();
            
            return listaEscuelas;
        }
        
        
}